export function debounce(func, delay = 100){

//===========refresh防抖============
//逻辑就是第一次执行refresh（已经被定义成定时器）
// 因为定时器会延迟执行函数（refresh），
// 然后如果在这时间内监听到了新的图片加载完成就会再次执行refresh
//这时上一个定时器被清除，开始生成新的定时器，所以有延续了delay的时间
//直到没有新的图片加载在delay范围内被监听到，执行fnc，也就是scroll的refresh

  //初始化定时器
  let timer = null
  //返回函数赋值给新的refresh
  return function (...args){
    //如果有定时器就清除
    if(timer)clearTimeout(timer)
    //赋值定时器，并设定时间（delay）
    timer = setTimeout(()=>{
      //再过delay毫秒就执行fnc函数（refresh）
      func.apply(this, args)
    }, delay)
  }
}
